"""
函数的多种传参方式
- 位置参数
- 关键字参数
- 缺省参数
- 不定长参数
"""

def user_info(name,age,sex):
    print(f"姓名是：{name}，年龄是：{age}，性别是：{sex}")

# 位置参数，必须一一对应
user_info("火树",35,'男')

# 关键字参数，通过键值对的方式传参
# 位置不需要一一对应
user_info(age=30,sex='男',name="韬韬")
# 关键字和位置可以混用，但是位置参数必须在前面
user_info("二姐",sex="女",age=25)

# 缺省参数，当调用函数时没有传递参数，就会使用默认值
# 缺省参数必须设置在最后
def user_info(name,age,sex='男'):
    print(f"姓名是：{name}，年龄是：{age}，性别是：{sex}")
user_info("小石",18)
user_info("元元",20,'女')

# 不定长参数
# 类型1 *位置传递（传进的所有参数都会被args收集，合并成一个元组）
def user_info(*args):
    print(args)
user_info("ppp",28,'男')
user_info("ggg",29,'男','打篮球')
# 类型2 **关键字传递（传进的键=值都会被kwargs接收，然后组成字典）
def user_info(**kwargs):
    print(kwargs)
user_info(name="小齐",age=22,sex='男')
user_info(name="jojo",sex='男',age=20,id=1)






